{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook contains plots of various statistical and systems metrics gathered from the last run"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import visualization_utils"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "SHOW_WEIGHTED = True # show weighted accuracy instead of unweighted accuracy\n",
    "PLOT_CLIENTS = False\n",
    "stat_file = 'stat_metrics.csv' # change to None if desired\n",
    "sys_file = 'sys_metrics.csv' # change to None if desired\n",
    "\n",
    "stat_metrics, sys_metrics = visualization_utils.load_data(stat_file, sys_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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h/CC8nWh+wps+zKw9Ex/rnUr2jdzLtxhBCKSn8ysB15rzxXOuU9y214kUsyb0DcRuNM5F3r1bIEQuBhoCd40Gtl20/stMCHtLuAB59yZtHxLEadAJlLAmNm5eF0wzwInnXNtfS5JBDP7C143XCvn8x8OM2uEdxHJl3gt3s3wLrxIBpq77KfB8Z2Z3YvX2hnnvCuPRQCNIRMpiB7HuzpyJd4VpSIFwWi8bvTa5Dyrf344gTc+awDe1Z8H8cZxPlKQw1jASbzuV4UxOYVayERERER8pmkvRERERHymQCYiIiLis0I3hqxatWquYcOGfpchIiIikqtly5btc87l+vFrhS6QNWzYkKVLl+a+oYiIiIjPzCysj21Tl6WIiIiIzxTIRERERHymQCYiIiLis0I3hiwrKSkpJCYmkpSU5HcpchZiY2OpV68eMTExfpciIiLiiyIRyBITEylfvjwNGzbEzPwuR86Ac479+/eTmJhIo0aN/C5HRETEF0WiyzIpKYmqVasqjBVCZkbVqlXVuikiIsVakQhkgMJYIabXTkREirsiE8j8ZmbccsstmcupqalUr16dXr16+ViViIiIFAYKZHmkbNmyrFmzhhMnTgAwZ84c6tat63NVIiIiUhgokOWhq6++mvfffx+AyZMn079//8z7jh07xuDBg2nfvj0XXXQRs2bNAmDbtm106dKFNm3a0KZNGxYsWADAvHnz6NatGzfccAMXXHABN998M865/H9SIiIiEnFF4irLYCP+t5Z1O3/K031eWKcCT/SOy3W7G2+8kSeffJJevXqxatUqBg8ezJdffgnAX//6Vy6//HLGjRvHoUOHaN++PVdccQU1atRgzpw5xMbGsnnzZvr375/50VDffPMNa9eupU6dOnTu3Jn58+dzySWX5OlzExEREf8VuUDmp5YtW7Jt2zYmT57M1Vdffcp9H3/8Me+++y6jRo0CvCtDt2/fTp06dbjrrrtYsWIF0dHRbNq0KfMx7du3p169egC0bt2abdu2KZCJiIgUQUUukIXTkhVJ1157LQ888ADz5s1j//79meudc8yYMYOmTZuesv3w4cOpWbMmK1euJD09ndjY2Mz7SpUqlfl9dHQ0qampkX8CIiIiku80hiyPDR48mCeeeIIWLVqcsv7KK6/khRdeyBwH9s033wBw+PBhateuTVRUFK+//jppaWn5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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10eacc5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plots accuracy vs. round number.\n",
    "if stat_metrics is not None:\n",
    "    visualization_utils.plot_accuracy_vs_round_number(stat_metrics, True, plot_stds=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "if PLOT_CLIENTS and stat_metrics is not None:\n",
    "    visualization_utils.plot_accuracy_vs_round_number_per_client(stat_metrics, sys_metrics, max_num_clients=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAHyCAYAAABFxtJ/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecFPX9x/HXh2t79F4UEBBEkHIgciAWVOyNGlskGqMmGkt+iUk0ARQUNJqosURJYu8UBRuxYkOR3qv03o92e22/vz9mDtfluDvg9ubK+/l43ONuZ76z85ndmdn3TvmeOecQERERkeBUCboAERERkcpOgUxEREQkYApkIiIiIgFTIBMREREJmAKZiIiISMAUyEREREQCpkBWTpnZdWbmon7yzGy9mb1lZm2P4Plqm9m9ZtY1HvUeYp5X+bWfETO8kT98cwHT3OqP61CM519lZi9EPe7tL2OVmHYt/OGtjmJxyjwzm2xmk4vRLnq9ipjZNjObYGYnlUKZBdVzr5kV2T+P/36/EudaGpnZP81sqZll+q/NDDN73MxS4jnvisx/76LXu11m9rGZnRZ0bUWJ3c8cok2LqGU7u4DxXxdn2yxp/j7RmVmf0p63HEyBrPwbBPQEzgDuBroAn5pZrcN8ntrAMKDUAhnwpf/7jJjhZwD7gYZmdmIB47YDC4rx/P2AEVGPe+MtY+x638IfXqED2WF6gR/XqyHAqcAkM6sdZFFBMrOawFTgEuBR4CLgZuAD4FIgNbjqKoT/4a1zvYA7gOOBD8ysRYA1xcMDQRcgZVNi0AXIUZvtnFvu//2NmW0APsb7AP0wuLKK5pxbb2Y/UHAg+wxo5/+9OGrc6cDXrpAejc0sxTmX5ZybVdI1VyLrnXPf+X9/bWa7gVeAC4A3gisrUAOB44A059ycqOHjzGxoSczAzBIAc87llsTzFTIfA5Kcc9nxnM9h2ha1zk0xs+XA18CVwIPBlVWiPgLOM7NLnXPvBl1MaTCzJCC3sH22eHSErOLZ7f9OAjCzAf4h6c6xDf1TWN/530BX+oP/HXVo/bqotv39tvv90wljzKx5zPNdbWazzGyvme02s3lmdnMR9X4J9DSz6C8HZwBf4e2MD4Q1M2sDNAG+iBr2gpmtM7OeZjbFzDKBv/njDpxKMLN78Y6CAeRELWNv4HN/+Mcxw/PncZOZzTGzsH+K6r9mVjdm2Z2Z3W9mt5vZSjPbY2ZfFOc0n5mdYmZj/eXINLMlZjbSzFJj2k32T230MbOZ/nsx38z6FfCcV5rZYjPLMrMFBbU5TDP937HveaKZ3R01rw1m9nczC8W0u8+vebf/Gn5mZj0KqLuLmX3lv9brzWwIYIdTqJndaGbL/eeYaWZnRY37vV9ng5hpzMxWmFlhYTP/Pd8UO8L5Yp6zuOvNA2b2ZzNbCWQDp5hZrpndXsCy/dHMcqLrL+a2ucrMXjGzX5rZYn8+Fxe0kP76Mr6A4d39evv5j08ws7fNbIu/jGv8eZfUF/1DrXNJ/ra2ysyy/d/3m/fBn98m/1Rc75hp8y/1aBE1LP+1udLMFpnZPjObbgWcLjWzO/z2Yb/N6Ye5TGP95brfzA65Xh9h/df6+45MfxtqY2bVzOxZM9tuZpv9bbOg96eWefvSnf42+qqZ1YuZd5Hbuv14avYWM/ubeQcIsvDOwEhRnHP6KYc/wHWAA9riHelMwTui9AmwGajpt0sE1gNPx0x/oj/9df60/fzHI4Ee/k8Dv+2v/XHP4Z2muQJYhBfiavhtTgMiwGNAH+A84HbgT8Vcju7+49pAHt6pixuA1VFtb/Dbnhw17AVgD7AauA3vtGS6P24V8IL/d1PgP/70vaKWsSZwiz/8tujh/nQPAjnA3/1lut5/PacCCVF1OH9+/wMuwzuashJYDiQW8RoMxAuLlwNn+vVsAt6IaTcZ2Ih3uvbneEerPgZygdZR7fr478W7eB+61wFr/GknF2PdcsD9McMu9IcPiBn+BrAPGOrP9zZgFzAupt1//TrOwjvl9wZeKOgY1aY+sNNft64A+gLfAGvxMk9Rda8C1sVM/y0QBtr6beoCmcAfY6Y931++3oU8/xl+m8/99tUKaXs46816vC8gA/z3tBEwCfi+gOedB7wb9bjIbTPqtVkPzAeuAs4Bjj9E7X/2X7M6McOfwLtcINl/vAz43q/7TOBqvKOoyUewP1sFvBIzrJ2/bL+PGf4a3jo/3H9t7/Vf69ei2vQu6P3kx/1Ni5h5rwam4W2LlwCz8Nbj2gXsf57336ff+utbBv5+ppDla+FP+yt+3JaujBr/NVHb5hHUvwZvXe8L/AzYAMwF3gEeAc7Fu3zDAbcUMJ+1Uct1G94+9fPD3dajlnO9P+9L8PZrqYe7TlTGn8AL0M8RvnE/bpixP+uBU2La3uvvNKpFDfsH3odfqv/4wA4jZtrq/rTPxQxvifeBeqf/+A/AjiNYjpb+fP/gP74U7/qxZOCE6J0P8KJfS/QH2gt+m8sLeO5V0TtK/3VwxASkqJ1Sn5jhLfDC4dCY4b389n2jhjm8D6ikqGED/eGnHsbrYXgh+ud4oape1LjJeB88baKGNfRrvCdq2DfAQqBK1LAefi2Ti1GDw7vOJREIAafgBYFvY5bvdL/t4Jjpr/GHpx3i+RP8514CPB41/AF/nWoWNawasI3iB7LY6WsAO4CXY9aZ5XinBvOHjQcWFWMeQ/15OLxQMN1fr6I/uA93vdlAzAdW1GvYNmpYmj/sZ4ezbUa9NvuBxsVYxmZ+/TdHDUsCtuJ/scMLzw647HC3+ULeu1f99SIZaI93JHwpUcEQ6ODP996Y6f/qD+8Us033jml3HQUHmp0x8+nmt7vaf1wFL7RMinm+K/x2LxSxfC2I2r/iBfAl+Psijj6Q7QBqRQ273W/3n5jpZxIVtKLmE7tc+evfOYezrUct50yiti/9FO9HpyzLv354H5jd8b4dLcS7ELZdVJvRQFW8b8b4h5h/AbzknMss4vl74h1FetU/ZJ3oH/Jei3dtV/4pxWlAHf/Q+SVWzIu/nXMr8b5l5j/PGcBU51y2c24psCVm3DfOubyYp8kB3ivO/A7TuXg74thln4r3DTL22rePnXM5UY/n+b+bUwgzq2lmD5l3PV0W3vK8jBfO2sQ0X+acW5b/wDm3Be81au4/VwLe+jDWOReJavcd3o67uO7x68jEOwpSHe/DN3r5LsD74B8b8/p85I+PPt3cx8w+N7PteEEmBy9wR98R3BP4zjm3NqrufXhH+oordvo9wPv+c+d7Gu+C8XP82prgfREYXdSTO+eG473Wv8J7j+rhHd2cb2aN/GaHu95MKmA7fBvYC1wbNexavAA20X9c3G0z33fOuYNOtxawjGvxwn/0vC/AC2Ev+4+3AyuAB807RRy7nh6Jq/HWiyy8o8AdgEudczuj2uQvU+zdtPmPzzzCeX8bM5/Ybbep//NWzHTj8Nbnw3UP3vp/3RFMW5BvnXMZUY/zr7v9X0y7xXiBO1bsco3B+0KYv90Ue1v3veP8hCbFVy4DmZk951+3ML8YbY8zs0/NbK551+A0LY0aS9F859x059w059wEvNNlhvetHQDn3AZgAt7pDfDuzKwLPFuM52/o//4Eb2cZ/dMR7wMJ59wX/vM2w/sw2Wpmn5hZp2LM40vgNP+aivzrx/J9DZzhv28t+PHOzGhbCwhpJSF/2Zdz8LLXwF/2KDtiHmf5v0MU7nm89+afeB/mpwC3HmLa2Hnkzye/XX28oxkHdRlyiGGH8pxfx+l461Jz4I2Y614a4h3N2MdPX5st/vh6AOZ1pfIBXsC4Ae9o3SnAHH66fE1KoO5DTX9s/gPn3PfADH7cHn6F96H6YnFm4Jzb5Jz7r3PueudcS7xTV8cCd/lNDne92VjAPPbjfdhfY54EvC9UY5xz4Zj5FLptFjafQrwM9DKzlv7ja4Hlzrlv/foc3ro6HRgFLDXvGrzfHMY8Yn2It16cCtyJd9fqePvp9Yj51+DFLsummPGH6yfblXMudttt4v/eHNMuFy+cHhbn3Fd4p6WHWsl0l7Iz5nF2IcML2h/FLle2P23+dlOsbT3K4axr4iuvd1m+ADwJvFSMto/gHQl60bz+X0bx029+FYpzLtPMVgCxQehpvO4wTsa7Vf8r59zCYjxl/s7mOgruamJP1LzH4n2Dqo53KPwhvK4SmkYfrSnAF3jfjnvgdbvx16hxX+FdU5X/zbegQBavb2L5y34eB+/YoscfMf/D5nK8UzCPRw3veIRPuQ1vR9mogHGN8K6VKY6Nzrnp/t9f+0FsGN5p2DH+8O141xod6sLmDf7vAXiBp3/0ETYzq4N3DcqBeRZSd3Edavr1McOeBp41s2PxAtkY51xBYbdIzrmnzGwE3mk2OPz15lDr78t4R7JPwwsnTfjxCFX081xHEdtmEfMpyDjgKeDnZvZPvCOIo37yZM6tAAb760ZnvGD6tJmtcs4dyR3eO6LWuW/NLAPvy8ptwMP5bfzfjYEfoqZtHDM+P7Qmx8wjNjgUV37A+Mn65R8lOtLn/AteoP11AeNKuv6ixC5XMlCHH7eb4m7r+XR07AiUyyNkzrkviflGY2bHm9kk8zpp/Mp+7L+qPV4XCuBdjHt5KZZa6sysKt7pmK3Rw51zn+Edrv4H3rUsz8RMmv+NMLYvpSl4O/bW/pG42J8lsTU45/Y6597DOwLXhKJ3Ivkh6894R/e+jRr3Nd5pu5/hXQMzrYjnKsyhlvFQwz/GO2zf/BDLvvIoasmXgndNVU7M8OuO5Mn8I4XTgIEW1QGumaXjHWE8Ug/h7XSHRh0lm4T3bbvWIV6f/J10Vbxrkg7spP0vR7Gncr8FephZs6h21fDCQHHFTl8D78aGb2PavY63Xr/m1xG7PRzEvE5hD9pn+qc8a/Hjh3ZJrTef453Ov9b/WcVPjx4f9rZZXP6p3nfwrmUciLeeFtjprvPMBv7PH1Rkp83F9CLetUh3+fs1+HFfcWVM22v835P93/lfPGJrKfDO0mJYh3cq+GcxwwdwhAc2nHMz8YLv3XjXSkYr6fqLErtcg/DyQf52U9xtXY5CeT1CVpDRwK+dc8v8D5+ngbPxTov0Bx7Hu96qhpnVc84d9dGNMiLNzOrjBZkmeN9S6+LdERXrX3ivwza8HUG0zXjfgq40s7l4h6ZXOue2m9ldwFPm3Wr/Id51LMfiHbWa7Jx7zcyG433L+hzvg7sp3oWls51zWymEc26xmW3B++Cd4ZzbGzV6Ft6prkvxLkaNDS6HI/+I4O/N7EMgz/9GvhTvCM4vzWwHXkBb4pz7wcweAp40778ffIH3LbEZ3uma/zjnPj+KenDOZZjZd35NG/Hem18SdYrtCAzDu7bjHTN7FmgA3EcB3TUcRp2ZZjYS78h0f7w7qyab2et4R0X/gXetWQQv+F2Ed4ftUryd+Z3AC2b2PN61M0M4+KjVo3hHQz8yr5uSLLzTgEVd5xhtc8z0f8L7sIvuIDh/eV4AfgfMc85NKcZzXwvcZGav+su631+W3+OdCnrKf+4SWW+ccxF/XjfjnYZ+NPq6HOfc7uJsm8VYrkN5Ge/I9X14126uyB/hX4rwOPAm3qnZBLwvEbn8+AUYM8sFXnTO3XC4M3fOOfP6d3sP+A3wd+fcfH+du9c/OjUF7zqnIcDrzrl5/rQbzewL4G4z24Z3au3nHGHnz/57cR/wH38dfgNojfclcnehExduCN6dr42I6s6npOsvhpOilusEvBtsJjvnPvXrKe62LkfDlYE7C47kB29FmO//XR1vpz076meRP+4YvDuoZuHtQNYRdUdUef2h4Lsst+DtDM8/xDRN/HYPH2J8/k0BOX6766LGXYQXtnbjfRAtw7vOqL0//mK8C0g34n0QrsXr6uCYYi7PGH+e/yhg3Ef+uGEFjHsBWHeI51zFT++yTMD70NyCtzNxUeNuxrtIOZeYu5vwPoi/wwupe/G6FXgSaBrVxnFwVxEtYl/HQtblD/GOdmzxn/viAuqYjNcpbqHL6Q+7Cu8urvwLpPv5008uxntx0LL4w5P9ec3Cv4MK71v0HXhffMJ4gWAOXl9w0Xd93YbXFUMm3hG8PgXVg3fK+iv/udbjfWDdF/1eFVL3KryjOL/CO52V5dd69iHa9/SX9dZirqPt8ELjLLwvLzl46/tYoGsB7Y9ovYl5jpP4cfs+4RBtCt02o1+b4ixnzPay0Z/3TTHjGuIdwVrqz3MHXqA4P6ZdkXcgFlUfXujayI93hCcD9+MdRcrxf99P1B3AfrumeDeE7ML7MjLSXzcKukvxoHlT8N2cd/jzC+OdbjyNAra/Q2zjB+6yjBn3PAXcAX009XPoO8dfIGp/GdWuvz9uFz8eOa4fM22R23phy6mfon/yd6rljnkd473nnOtg3r80WeKca1LENNWBxc65inZhf7GY2Y14pxFPcD/27i9SKZnZA3gfMMc4547mKIeIyFErl9eQxfJ3pivNbBAc6HW7s/93/ajrPu7G++ZYqZhZezO7FO9IwzsKY1KZmfffAK7EC2OjFcZEpCwol0fI/HPZvfFu8d+Md83MZ3jXSDXBu97iDefccDMbiHd3kMO7IPRW9+MtzZWCmU3Gu5V8Cl5Hh7oAUyotM1uFd83O/4BrnXcBu4hIoMplIBMRERGpSCrEKUsRERGR8kyBTERERCRg5a4fsvr167sWLVoEXYaIiIhIkWbMmLHNOdegqHblLpC1aNGC6dOnF91QREREJGBmVqx/WadTliIiIiIBUyATERERCZgCmYiIiEjAyt01ZAXJyclh3bp1hMPhoEuRGKFQiKZNm5KUlBR0KSIiImVWhQhk69ato0aNGrRo0QIzC7oc8Tnn2L59O+vWraNly5ZBlyMiIlJmVYhTluFwmHr16imMlTFmRr169XTkUkREpAgVIpABCmNllN4XERGRolWYQBa0hIQE0tLS6Ny5M127dmXKlCmFtp89ezYffPDBUc/38ccf58477zzw+Oabb6ZPnz4HHj/xxBPcfvvtBU570UUXsWvXLnbt2sXTTz99YPiqVat47bXXjro2ERERKR4FshKSmprK7NmzmTNnDqNGjeLuu+8utH1JBbJevXr9JPzNmTOHjIwM8vLyAJgyZQqnnnrqT6ZxzhGJRPjggw+oXbu2ApmIiEjAFMjiYPfu3dSpUweAwYMH88477xwYd8011zBhwgSGDh3Km2++SVpaGm+++Sb79u3jl7/8Jd27d6dLly5MmDABgAULFtC9e3fS0tLo1KkTy5Yt+8m80tLSWLp0KZmZmWRkZJCamkpaWhrz5s0DvEDWq1cvVq1aRdu2bRk8eDAdOnRg7dq1tGjRgm3btvHnP/+ZH374gbS0NO666y7+/Oc/89VXX5GWlsajjz5KXl4ed911F6eccgqdOnXi2WefBWDy5Mn07t2bgQMHcuKJJ3LNNdfgnCuNl1hERKRCqRB3WUZ7/fs1rNmxv0Sfs3ndqlzVvXmhbTIzM0lLSyMcDrNx40Y+++wzAG644QYeffRR+vbtS0ZGBlOmTOHFF19k586dTJ8+nSeffBKAe+65h7PPPpvnnnuOXbt20b17d/r06cMzzzzDHXfcwTXXXEN2dvaBI1/5EhMT6dKlC9OmTSMzM5P09HTatGnDlClTaNCgAc45mjVrxqpVq1i2bBkvvvgiPXr0+MlzPPjgg8yfP5/Zs2cDXtB65JFHeO+99wAYPXo0tWrVYtq0aWRlZdGrVy/OO+88AGbNmsWCBQs45phj6NWrF9988w2nnXba0b/oIiIilUiFC2RByT9lCfDtt98yePBg5s+fz5lnnsktt9zC1q1bGTduHAMGDCAx8eCX/aOPPmLixIk88sgjgHfn6Jo1a+jZsycPPPAA69ato3///rRp0+agaU899VSmTJlCZmYmPXv2pE2bNowcOZIGDRr85HTlcccdd1AYK46PPvqIuXPnMnbsWAAyMjJYtmwZycnJdO/enaZNmwLe0bpVq1YpkImIiBymChfIijqSVRp69uzJtm3b2Lp1Kw0bNmTw4MG88sorvPHGGzz//PMFTuOcY9y4cbRt2/Ynw9u1a0d6ejrvv/8+F110Ec8++yxnn332T9r06tWLZ555hnA4zK233kqDBg1YuHDhQYGsWrVqR7Q8zjmeeOIJzj///J8Mnzx5MikpKQceJyQkkJube0TzEBERqcx0DVkcLF68mLy8POrVqwfAddddx2OPPQZA+/btAahRowZ79uw5MM3555/PE088ceAarFmzZgGwYsUKWrVqxe23387ll1/O3LlzD5pfz549+e677w4EQDOjQYMGTJgwgV69ehVZb2wtBdX2r3/9i5ycHACWLl3Kvn37Dus1ERERkUNTICsh+deQpaWlccUVV/Diiy+SkJAAQKNGjWjXrh3XX3/9gfZnnXUWCxcuPHBR/5AhQ8jJyaFTp06cdNJJDBkyBIC33nqLDh06kJaWxvz58xk8ePBB865Tpw4NGjTgpJNOOjCsZ8+ebNmyhc6dOxdZe7169ejVqxcdOnTgrrvuolOnTiQkJNC5c2ceffRRfvWrX9G+fXu6du1Khw4duPnmm3UkTEREpARZebsrrlu3bm769Ok/GbZo0SLatWsXUEVF279/Px07dmTmzJnUqlUr6HJKXVl/f0REROLFzGY457oV1S5uR8jM7Dkz22Jm8wtp09vMZpvZAjP7Il61BOmTTz6hXbt23HbbbZUyjImIiJRFGds3E84sO5ffxPOi/heAJ4GXChppZrWBp4ELnHNrzKxhHGsJTJ8+fVi9enXQZYiIiIhv5cJpbJ/0ELlNutDjqr8EXQ4Qx0DmnPvSzFoU0uRqYLxzbo3ffku8ahERERFxkQizPn4Vm/MaeakNaNHrZ0GXdECQ3V6cACSZ2WSgBvC4c67Ao2kiIiIiRyO8fy+zxowiddN0MhufTNrAu0mtViPosg4IMpAlAicD5wCpwLdm9p1zbmlsQzO7CbgJoHnz4PsZExERkfJj09rlrH5nBKmZm3FpV9Pj3GuxKmWro4kgA9k6YLtzbh+wz8y+BDoDBwUy59xoYDR4d1mWapUiIiJSbi2a+j8yv3qShCrJ1LzoPlp1SA+6pAIFGQ8nAKeZWaKZVQXSgUUB1nNUEhISSEtLo3PnznTt2pUpU6YU2n727Nl88MEHJTLvFi1a0LFjRzp16sSZZ55ZYjcRTJ48mUsuuaREnktERKQ05eZk8/24x8ia/A+yqzej9eCnymwYg/h2e/E68C3Q1szWmdkNZvZrM/s1gHNuETAJmAt8D/zHOXfILjLKuvz/ZTlnzhxGjRrF3XffXWj7kgxkAJ9//jlz586ld+/e3H///SX2vCIiIuVNxo6tTHv+9yQv/5CsVufS7YbHqF2/cdBlFSpugcw5d5VzrolzLsk519Q591/n3DPOuWei2jzsnGvvnOvgnHssXrWUtt27d1OnTh0ABg8ezDvvvHNg3DXXXMOECRMYOnQob7755oGe+vft28cvf/lLunfvTpcuXZgwYQIACxYsoHv37qSlpdGpUyeWLVtW6Lx79uzJ+vXrDzx+5ZVXDkx/8803k5eXB8BvfvMbunXrxkknncSwYcMOtJ80aRInnngiXbt2Zfz48SX2moiIiJSG1YtmsPTFW0nJWEnSabeTPugPJCYlB11WkSrcPxdnxguwc1XJPmedFnDydYU2yf/XSeFwmI0bN/LZZ58BcMMNN/Doo4/St29fMjIymDJlCi+++CI7d+5k+vTpPPnkkwDcc889nH322Tz33HPs2rWL7t2706dPH5555hnuuOMOrrnmGrKzsw8EqkOZNGkSffv2Bbwe8t98802++eYbkpKSuOWWW3j11VcZPHgwDzzwAHXr1iUvL49zzjmHuXPncsIJJ3DjjTfy2Wef0bp1a6644oqjfulERERKg4tEmPPpG7hZL+NC9WjcbwTHtGgbdFnFVvECWUDyT1kCfPvttwwePJj58+dz5plncsstt7B161bGjRvHgAEDSEw8+GX/6KOPmDhxIo888ggA4XCYNWvW0LNnTx544AHWrVtH//79adOmTYHzP+uss9ixYwfVq1dnxIgRAHz66afMmDGDU045BfBCY8OGXv+7b731FqNHjyY3N5eNGzeycOFCIpEILVu2PDCPn//854wePbpkXygREZESFs7cx+yxDxHaMJVwwzQ6D7qHqtXL13/HqXiBrIgjWaWhZ8+ebNu2ja1bt9KwYUMGDx7MK6+8whtvvMHzzz9f4DTOOcaNG0fbtj9N8+3atSM9PZ3333+fiy66iGeffZazzz77oOk///xzateuzTXXXMOwYcP4xz/+gXOOX/ziF4waNeonbVeuXMkjjzzCtGnTqFOnDtdddx3hcLjkXgAREZFSsmX9SlaOv5dQ5mbyOl5Jjwt+Uea6tCiO8ldxObB48WLy8vKoV68eANdddx2PPeZdIte+fXsAatSowZ49ew5Mc/755/PEE0+Q/8/eZ82aBcCKFSto1aoVt99+O5dffjlz58495HwTExN57LHHeOmll9ixYwfnnHMOY8eOZcsW758g7Nixg9WrV7N7926qVatGrVq12Lx5Mx9++CEAJ554IqtWreKHH34A4PXXXy/Jl0VERKRELf7+Y9a9fgcJOXupceG9nHzR9eUyjEFFPEIWkPxryMA72vXiiy+SkJAAQKNGjWjXrt2Ba7vAO8X44IMPkpaWxt13382QIUO488476dSp04FTh++99x5vvfUWL7/8MklJSTRu3Jh77rmn0DqaNGnCVVddxVNPPcWQIUO4//77Oe+884hEIiQlJfHUU0/Ro0cPunTpwoknnkizZs3o1asXAKFQiNGjR3PxxRdTtWpVTj/99J+ERhER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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x105966860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plots the cumulative sum of the bytes written and read by the server in \n",
    "# the past rolling_window rounds versus the round number\n",
    "\n",
    "if stat_metrics is not None:\n",
    "    visualization_utils.plot_bytes_written_and_read(sys_metrics, rolling_window=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111fb7b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualization_utils.plot_client_computations_vs_round_number(sys_metrics, aggregate_window=1, max_num_clients=20, range_rounds=(1, 4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Longest FLOPs path: 1.76E+11\n"
     ]
    }
   ],
   "source": [
    "print('Longest FLOPs path: %s' % visualization_utils.get_longest_flops_path(sys_metrics))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
